package com.sgb.kjwl.api.service;

import com.sgb.kjwl.model.entity.ChangeOrderPeopleEntity;
import com.sgb.kjwl.model.entity.CreateOrderEntity;
import com.sgb.kjwl.model.entity.OrderUploadEntity;
import com.sgb.kjwl.model.entity.PersonInfoEntity;
import com.sgb.kjwl.model.entity.user.OrderDetailEntity;
import com.sgb.kjwl.model.entity.user.OrderListEntity;
import com.sgb.kjwl.model.entity.user.OrderPersonEntity;
import com.sgb.kjwl.model.entity.user.OrderServiceEntity;
import com.swgk.core.base.model.entity.ListResponse;
import com.swgk.core.base.model.entity.BaseEntity;

import java.util.List;
import java.util.Map;

import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;

public interface OrderAPI {

    // 订单模块-变更跟单人
    @FormUrlEncoded
    @POST("v1/app/user/order/list")
    Call<BaseEntity<ChangeOrderPeopleEntity>> getOrderList(@Field("pageNum") int pageNum, @Field("pageSize") int pageSize);

    //获取采购订单列表（待接单、待发货、待收货、已完成）//（弃用）
    @FormUrlEncoded
    @POST("v1/app/user/order/purchaseOrder")
    Call<BaseEntity<ListResponse<List<OrderListEntity>>>> getPurchaseOrders(@Field("pageNum") int pageNum, @Field("pageSize") int pageSize, @Field("orderType") int type);

    //获取销售订单列表（待接单、待发货、待收货、已完成）（弃用）
    @FormUrlEncoded
    @POST("v1/app/user/order/sellerOrder")
    Call<BaseEntity<ListResponse<List<OrderListEntity>>>> getSellerOrders(@Field("pageNum") int pageNum, @Field("pageSize") int pageSize, @Field("orderType") int type);

    //创建订单
    @POST("v1/app/user/order/generateOrder")//（弃用）
    Call<BaseEntity> createOrder(@Body CreateOrderEntity entity);

    //员工管理 列表
    @POST("v1/app/user/employee")//（弃用）
    Call<BaseEntity<List<PersonInfoEntity>>> personList(@Body Map map);

    //解除 关系
    @POST("v1/app/user/employee/delete")//（弃用）
    Call<BaseEntity> personDelete(@Body Map map);

    //搜索员工
    @POST("v1/app/user/employee/search")//（弃用）
    Call<BaseEntity<PersonInfoEntity>> personSearch(@Body Map map);

    //添加员工
    @POST("v1/app/user/employee/add")//（弃用）
    Call<BaseEntity> personAdd(@Body Map map);

    //跟单记录
    @FormUrlEncoded
    @POST("v1/app/user/order/personRecord")//（弃用）
    Call<BaseEntity<List<OrderPersonEntity>>> getOrderPersonRecord(@Field("orderId") String id);

    //以下为当前的订单流程：
    //1 销售方保存、修改服务费
    @POST("v1/app/user/order/saveSurcharge")//（弃用）
    Call<BaseEntity> editOrder(@Body List<OrderUploadEntity> data);

    //2 销售方确认接单(orderAgreement付款约定)
    @FormUrlEncoded
    @POST("v1/app/user/order/shopReceiptOrder")//（弃用）
    Call<BaseEntity> receiptOrder(@Field("orderId") String id, @Field("orderAgreement") String orderAgreement);

    //3 采购方确认订单
    @FormUrlEncoded
    @POST("v1/app/user/order/receiptOrder")//（弃用）
    Call<BaseEntity> confirmOrder(@Field("orderId") String id, @Field("price") String price);

    //4 销售方确认发货
    @FormUrlEncoded
    @POST("v1/app/user/order/confirmDelivery")
    Call<BaseEntity> confirmDelivery(@Field("orderId") String id);

    //5 采购方确认收货
    @FormUrlEncoded
    @POST("v1/app/user/order/receiptGoods")
    Call<BaseEntity> receiptGoods(@Field("orderId") String id);

    //订单详情
    @FormUrlEncoded
    @POST("v1/app/user/order/detail")
    Call<BaseEntity<OrderDetailEntity>> getOrderDetail(@Field("orderId") String id);

    //取消订单
    @FormUrlEncoded
    @POST("v1/app/user/order/cancel")
    Call<BaseEntity> orderCancel(@Field("orderId") String id, @Field("reason") String reason);

    //取消订单原因列表
    @POST("v1/app/user/order/reasonList")
    Call<BaseEntity<String[]>> orderCancelReasonList();

    //添加物流信息
    @FormUrlEncoded
    @POST("v1/app/user/order/saveLogistics")
    Call<BaseEntity> addLogisticsInfo(@Field("orderId") String id, @Field("content") String content);

    //获取订单服务费详情
    @FormUrlEncoded
    @POST("v1/app/user/order/getChargeList")
    Call<BaseEntity<List<OrderServiceEntity>>> getChangeList(@Field("orderId") String id);

}
